/**
 * 
 */
package com.autosalon.ui.banka.action;

import com.autosalon.DAO.DaoFactory;
import com.autosalon.ui.banka.Banka;
import com.autosalon.ui.banka.state.BankaStateHolder;
import com.vaadin.ui.Button.ClickEvent;

/**
 * @author Ragisel
 * 
 */
public class SaveBankAction extends AbstractBankAction {

	private com.autosalon.model.Banka bankaKulozeni;
	private final int id = 3;

	public SaveBankAction(Banka banka) {
		super(banka);
	}

	@Override
	public void buttonClick(ClickEvent event) {

		try {

			bankaKulozeni = new com.autosalon.model.Banka();
			String jmenobanky = banka.getTfJmenoBanky().getValue().toString();
			String jmenoEditBanky = banka.getTfEditJmenoBanky().getValue()
					.toString();
			if (!jmenobanky.isEmpty() && (banka.getId_banky() == null)) {
				bankaKulozeni.setNazevBanky(jmenobanky);
				DaoFactory.getinstance().getBanka().insert(bankaKulozeni);
				banka.getWindow().showNotification("Ulozeni probehlo uspesne.");

				banka.naplnTabulkuObjednavky();
				banka.getFormNewBank().setVisible(false);
				BankaStateHolder.setState(BankaStateHolder.VIEW_BANKA_STATE,id,
						banka);
			} else if (!jmenoEditBanky.isEmpty() && (banka.getId_banky() != null)) {
				bankaKulozeni = (com.autosalon.model.Banka) DaoFactory
						.getinstance().getBanka().getById(banka.getId_banky());
				bankaKulozeni.setNazevBanky(banka.getTfEditJmenoBanky()
						.getValue().toString());
				DaoFactory.getinstance().getBanka().update(bankaKulozeni);
				banka.setId_banky(null);
				banka.naplnTabulkuObjednavky();
				BankaStateHolder.setState(BankaStateHolder.VIEW_BANKA_STATE,id,
						banka);

			} else {
				banka.getWindow().showNotification(
						"Název banky nesmí být prázdný.");
			}
		} catch (Exception e) {
			e.printStackTrace();
			banka.getWindow().showNotification("Zadane udaje jsou chybne.");
		}

	}

}
